小D的 abc 变换问题

# 小D的 abc 变换问题


# 问题描述

小D拿到了一个仅由 "abc" 三种字母组成的字符串。她每次操作会对所有字符同时进行以下变换:

  • 'a' 变成 'bc'
  • 'b' 变成 'ca'
  • 'c' 变成 'ab'

小D将重复该操作 k 次。你的任务是输出经过 k 次变换后,得到的最终字符串。

例如:对于初始字符串 "abc",执行 2 次操作后,字符串将变为 "caababbcbcca"

# 测试样例

样例1

输入:s = "abc", k = 2 输出:'caababbcbcca'

样例2

输入:s = "abca", k = 3 输出:'abbcbccabccacaabcaababbcabbcbcca'

样例3

输入:s = "cba", k = 1 输出:'abcabc'

题解: 直接使用String类自带的replaceAll()方法

public class Main {
    public static String solution(String s, int k) {
        // PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE
        // write code here
        for (int i = 0; i < k; i++) {
            s = s.replaceAll("a", "1")
                    .replaceAll("b", "2")
                    .replaceAll("c", "3")
                    .replaceAll("1", "bc")
                    .replaceAll("2", "ca")
                    .replaceAll("3", "ab");
        }
        return s;
    }

    public static void main(String[] args) {
        System.out.println(solution("abc", 2).equals("caababbcbcca"));
        System.out.println(solution("abca", 3).equals("abbcbccabccacaabcaababbcabbcbcca"));
        System.out.println(solution("cba", 1).equals("abcabc"));
    }
}